The initial phases of computer or processor system operation (i.e., prior to the booting of an operating system by the processor system) following a power-up or a reset are controlled by a basic input/output system (BIOS). In general, the BIOS is implemented as software or firmware in the form of machine readable instructions that are stored in a non-volatile memory coupled to a processor. Following a reset operation or the application of power to the processor, the processor executes the BIOS instructions. Typically, the BIOS performs one or more hardware and software configuration and test activities prior to booting the operating system. The configuration activities carried out by the BIOS are responsible for establishing the manner in which hardware devices (e.g., disk drives, video controllers, keyboard, mouse, etc.) associated with the processor system interact with the operating system executed by the processor system. The test activities collect system configuration information that may be later used, for example, by the operating system to determine that hardware or devices associated with the system are ready for use and to facilitate debugging activities, configuration management activities, etc.
Typically, certain protocol interfaces such as architectural protocols (APs) should only be called by designated program(s). In a driver execution environment (DXE) phase, for example, protocol interfaces should only be called by a DXE core. However, some protocol interfaces may be inadvertently or maliciously accessed by callers other than the DXE core. That is, a protocol interface may be incorrectly called and/or replaced. For example, a driver may discover a protocol interface and replace the authentic version of the protocol interface that was previously installed with a fake version of the protocol interface. In another example, the driver may turn off services provided by the protocol interface while the DXE core is operating under the assumption that those services are enabled. As a result, the protocol interface may not be available when an authorized call of the protocol interface is placed.